{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 导入相应的工具包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import math\n",
    "import matplotlib.pyplot as plt\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "plt.rcParams['font.sans-serif']=['SimHei']\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "import seaborn as sns; sns.set()\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 为什么要引入核函数？（10分） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当样本数据是线性不可分的时候，这时候就需要核函数，将样本数据映射到高维空间，然后再对数据进行划分。   \n",
    "一般地，使用高斯核函数，理论上高斯核函数能将数据映射到无限高的维度。  \n",
    "示意图如下：   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 定义一个画图函数\n",
    "def plot_svc_decision_function(model, ax=None, plot_support=True):\n",
    "    \"\"\"Plot the decision function for a 2D SVC\"\"\"\n",
    "    if ax is None:\n",
    "        ax = plt.gca()# Get Current Axes ：表示获取当前子图\n",
    "    xlim = ax.get_xlim()\n",
    "    ylim = ax.get_ylim()\n",
    "    \n",
    "    # create grid to evaluate model\n",
    "    x = np.linspace(xlim[0], xlim[1], 30)\n",
    "    y = np.linspace(ylim[0], ylim[1], 30)\n",
    "    Y, X = np.meshgrid(y, x)\n",
    "    xy = np.vstack([X.ravel(), Y.ravel()]).T\n",
    "    P = model.decision_function(xy).reshape(X.shape)\n",
    "    \n",
    "    # plot decision boundary and margins\n",
    "    ax.contour(X, Y, P, colors='k',\n",
    "               levels=[-1, 0, 1], alpha=0.5,\n",
    "               linestyles=['--', '-', '--'])\n",
    "    \n",
    "    # plot support vectors\n",
    "    if plot_support:\n",
    "        ax.scatter(model.support_vectors_[:, 0],\n",
    "                   model.support_vectors_[:, 1],\n",
    "                   s=300, linewidth=1, facecolors='none');\n",
    "    ax.set_xlim(xlim)\n",
    "    ax.set_ylim(ylim)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 先使用线性核变换试试看\n",
    "from sklearn.datasets.samples_generator import make_circles\n",
    "from sklearn.svm import SVC\n",
    "X, y = make_circles(100, factor=.1, noise=.1)\n",
    "\n",
    "clf = SVC(kernel='linear').fit(X, y)\n",
    "\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')\n",
    "plot_svc_decision_function(clf, plot_support=False);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "线性不可分了，那咋办呢？试试高维核变换吧！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#加入了新的维度r\n",
    "from mpl_toolkits import mplot3d\n",
    "r = np.exp(-(X ** 2).sum(1))# sum(1)相当于sum（axis=1）\n",
    "def plot_3D(elev=30, azim=30, X=X, y=y):\n",
    "    ax = plt.subplot(projection='3d')\n",
    "    ax.scatter3D(X[:, 0], X[:, 1], r, c=y, s=50, cmap='autumn')\n",
    "    ax.view_init(elev=elev, azim=azim)\n",
    "    ax.set_xlabel('x')\n",
    "    ax.set_ylabel('y')\n",
    "    ax.set_zlabel('r')\n",
    "\n",
    "plot_3D(elev=45, azim=45, X=X, y=y)    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\93246\\Anaconda3\\lib\\site-packages\\sklearn\\svm\\base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n",
      "  \"avoid this warning.\", FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "SVC(C=1000000.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
       "  kernel='rbf', max_iter=-1, probability=False, random_state=None,\n",
       "  shrinking=True, tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 用高维核变换  （径向基函数）\n",
    "clf = SVC(kernel='rbf', C=1E6)# kernel='rbf' C参数就是软间隔参数\n",
    "clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#这回腻害了，可以划分了！\n",
    "plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')\n",
    "plot_svc_decision_function(clf)\n",
    "plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],\n",
    "            s=300, lw=1, facecolors='none');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 给出合页损失的数学形式并画出图形。（10分） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "合页损失函数的公式如下：   \n",
    "<img  style=\"float:left\" src=\"HingeLoss.png\" width = \"300\" height = \"200\" >"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'LossFunction')"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8, 5))\n",
    "x = np.linspace(start=-2, stop=3,num =1001,dtype=np.float)\n",
    "logi = np.log(1 + np.exp(-x))/math.log(2)\n",
    "boost = np.exp(-x)\n",
    "y_01 = x < 0\n",
    "y_hinge = 1.0 - x\n",
    "y_hinge[y_hinge < 0] = 0\n",
    "plt.plot(x, logi, 'r-', mec='k', label='Logistic Loss', lw=2)\n",
    "plt.plot(x, y_01, 'g-', mec='k', label='0/1 Loss', lw=2)\n",
    "plt.plot(x, y_hinge, 'b-',mec='k', label='Hinge Loss', lw=2)\n",
    "plt.plot(x, boost, 'm--',mec='k', label='Adaboost Loss',lw=2)\n",
    "plt.grid(True, ls='--')\n",
    "plt.legend(loc='upper right')\n",
    "plt.title(\"LossFunction\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 什么是支持向量？为什么SVM中只有一小部分的训练样本是支持向量（稀疏的）？（10分） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 支持向量：数据中决定间隔的样本点\n",
    "所以，只有在间隔线上或者以内（软间隔）才能被称作支持向量，其他的数据点不会影响到决策边界，不能被称作支持向量。  \n",
    "根据支持向量机的推导公式也可以证明，决策边界函数中，参数W=sum(αi * yi * xi),若αi 等于0，那么对应的样本点对参数的W就为0，   \n",
    "也就是说这个样本点对最终的决策边界并不会产生作用，那么这些样本点就不能被称为支持向量。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. 决策树中特征分裂的准则有哪些？（10分） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 决策树中特征分裂的准则\n",
    "1.信息增益：ID3 每次迭代按照信息增益最大的特征进行切分   \n",
    "2.信息增益率：C4.5  考虑到自身内部的熵值   \n",
    "3.CART：基尼系数不纯度（GiNi），在每次迭代中选择基尼指数最小的特征及其相应切分点进行切分。\n",
    "#### 区别：\n",
    "1.ID3只能处理离散型变量，而C4.5和CART都可以处理离散型变量。   \n",
    "2.ID3和C4.5只能处理分类任务，而CART既可以处理分类任务，也可以处理回归任务。   \n",
    "3.ID3和C4.5可以生成多分叉的决策树，而CART只能是二叉树。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5. SVM模型并没有概率解释。为了使SVM模型能输出概率，我们应该设置哪个参数？（10分） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在sklearn中，如果想使用SVM模型得到样本属于每个类别的概率值，那么需要将其参数probability设置为True。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 6. 采用train_test_split，从将数据集中随机抽取10000条记录，用于下述作业中模型的训练（原始数据集太大，剩余数据抛弃）。（10分） "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "dpath = './data/'\n",
    "train1 = pd.read_csv(dpath +\"Otto_FE_train_org.csv\")\n",
    "train2 = pd.read_csv(dpath +\"Otto_FE_train_tfidf.csv\")\n",
    "#train = pd.read_csv(dpath +\"Otto_FE_train_tfidf.csv\")\n",
    "train2 = train2.drop([\"id\",\"target\"], axis=1)\n",
    "train =  pd.concat([train1, train2], axis = 1, ignore_index=False)\n",
    "\n",
    "del train1\n",
    "del train2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(61878, 188)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = train['target'] \n",
    "X_train = train.drop([\"id\", \"target\"], axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train_part, X_val, y_train_part, y_val = train_test_split(X_train, y_train, train_size = 10000,random_state = 0)\n",
    "# train_size: If int, represents the absolute number of train samples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10000, 186)"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train_part.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 7. 根据6中得到的训练数据，训练线性SVM，并对超参数（正则惩罚项、C）进行超参数调优，并分析不同C对应的训练误差和交叉验证得到的测试误差的变化趋势。（20分）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 使用 GridSearchCV进行参数调优"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import LinearSVC\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "# C = [np.logspace(-1, 3, 5)]\n",
    "# parameters = [{'C':[0.1,1,10,100,1000]},{'penalty': ['l1','l2']}]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "from itertools import product\n",
    "duals = [True, False]\n",
    "penaltys = ['l1', 'l2']\n",
    "C = [0.1,1,10,100,1000]\n",
    "# losses = ['hinge', 'squared_hinge']\n",
    "all_params = list(product( penaltys, C))\n",
    "filtered_params = [{ 'penalty' : [penalty],'C':[c] }\n",
    "                   for  penalty, c in all_params]\n",
    "# 在sklearn中，在调优参数时，penalty == 'l1'，loss == 'hinge'不能同时出现；penalty == 'l1'， loss == 'squared_hinge' ， dual = True不能同时出现\n",
    "# penalty == 'l2'， loss == 'hinge' ， dual = False 不能同时出现\n",
    "# 所以在调优C参数和正则参数时，必须要设置dual和loss参数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=3, error_score='raise-deprecating',\n",
       "       estimator=LinearSVC(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
       "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
       "     verbose=0),\n",
       "       fit_params=None, iid='warn', n_jobs=None,\n",
       "       param_grid=[{'penalty': ['l1'], 'C': [0.1]}, {'penalty': ['l1'], 'C': [1]}, {'penalty': ['l1'], 'C': [10]}, {'penalty': ['l1'], 'C': [100]}, {'penalty': ['l1'], 'C': [1000]}, {'penalty': ['l2'], 'C': [0.1]}, {'penalty': ['l2'], 'C': [1]}, {'penalty': ['l2'], 'C': [10]}, {'penalty': ['l2'], 'C': [100]}, {'penalty': ['l2'], 'C': [1000]}],\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring='accuracy', verbose=0)"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "SVC1 = LinearSVC(dual=False,loss=\"squared_hinge\" )\n",
    "grid_neg=GridSearchCV(SVC1,filtered_params,cv=3,scoring='accuracy')\n",
    "grid_neg.fit(X_train_part, y_train_part)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'penalty': ['l1'], 'C': [0.1]},\n",
       " {'penalty': ['l1'], 'C': [1]},\n",
       " {'penalty': ['l1'], 'C': [10]},\n",
       " {'penalty': ['l1'], 'C': [100]},\n",
       " {'penalty': ['l1'], 'C': [1000]},\n",
       " {'penalty': ['l2'], 'C': [0.1]},\n",
       " {'penalty': ['l2'], 'C': [1]},\n",
       " {'penalty': ['l2'], 'C': [10]},\n",
       " {'penalty': ['l2'], 'C': [100]},\n",
       " {'penalty': ['l2'], 'C': [1000]}]"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_neg.param_grid  # 所有的参数组合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7638\n",
      "{'C': 10, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "print(grid_neg.best_score_)# 最好的参数组得到的结果（是交叉验证的平均结果）\n",
    "print(grid_neg.best_params_)# 最好的参数组合"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mean_test_score</th>\n",
       "      <th>std_test_score</th>\n",
       "      <th>mean_train_score</th>\n",
       "      <th>std_train_score</th>\n",
       "      <th>param_C</th>\n",
       "      <th>param_penalty</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7359</td>\n",
       "      <td>0.006019</td>\n",
       "      <td>0.743351</td>\n",
       "      <td>0.004078</td>\n",
       "      <td>0.1</td>\n",
       "      <td>l1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7595</td>\n",
       "      <td>0.005219</td>\n",
       "      <td>0.781551</td>\n",
       "      <td>0.004086</td>\n",
       "      <td>1</td>\n",
       "      <td>l1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.7617</td>\n",
       "      <td>0.005896</td>\n",
       "      <td>0.802251</td>\n",
       "      <td>0.004639</td>\n",
       "      <td>10</td>\n",
       "      <td>l1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7586</td>\n",
       "      <td>0.007978</td>\n",
       "      <td>0.807751</td>\n",
       "      <td>0.004957</td>\n",
       "      <td>100</td>\n",
       "      <td>l1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7563</td>\n",
       "      <td>0.009156</td>\n",
       "      <td>0.808202</td>\n",
       "      <td>0.005043</td>\n",
       "      <td>1000</td>\n",
       "      <td>l1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.7470</td>\n",
       "      <td>0.006762</td>\n",
       "      <td>0.759752</td>\n",
       "      <td>0.004567</td>\n",
       "      <td>0.1</td>\n",
       "      <td>l2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7595</td>\n",
       "      <td>0.004417</td>\n",
       "      <td>0.783952</td>\n",
       "      <td>0.005117</td>\n",
       "      <td>1</td>\n",
       "      <td>l2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7638</td>\n",
       "      <td>0.005284</td>\n",
       "      <td>0.796601</td>\n",
       "      <td>0.004879</td>\n",
       "      <td>10</td>\n",
       "      <td>l2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.7605</td>\n",
       "      <td>0.007064</td>\n",
       "      <td>0.804951</td>\n",
       "      <td>0.004378</td>\n",
       "      <td>100</td>\n",
       "      <td>l2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7591</td>\n",
       "      <td>0.007474</td>\n",
       "      <td>0.807802</td>\n",
       "      <td>0.005230</td>\n",
       "      <td>1000</td>\n",
       "      <td>l2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   mean_test_score  std_test_score  mean_train_score  std_train_score param_C  \\\n",
       "0           0.7359        0.006019          0.743351         0.004078     0.1   \n",
       "1           0.7595        0.005219          0.781551         0.004086       1   \n",
       "2           0.7617        0.005896          0.802251         0.004639      10   \n",
       "3           0.7586        0.007978          0.807751         0.004957     100   \n",
       "4           0.7563        0.009156          0.808202         0.005043    1000   \n",
       "5           0.7470        0.006762          0.759752         0.004567     0.1   \n",
       "6           0.7595        0.004417          0.783952         0.005117       1   \n",
       "7           0.7638        0.005284          0.796601         0.004879      10   \n",
       "8           0.7605        0.007064          0.804951         0.004378     100   \n",
       "9           0.7591        0.007474          0.807802         0.005230    1000   \n",
       "\n",
       "  param_penalty  \n",
       "0            l1  \n",
       "1            l1  \n",
       "2            l1  \n",
       "3            l1  \n",
       "4            l1  \n",
       "5            l2  \n",
       "6            l2  \n",
       "7            l2  \n",
       "8            l2  \n",
       "9            l2  "
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 把结果转换成表格形式\n",
    "grid_dataFrame=pd.DataFrame(grid_neg.cv_results_)\n",
    "grid_dataFrame=grid_dataFrame[['mean_test_score','std_test_score','mean_train_score','std_train_score','param_C','param_penalty']]\n",
    "grid_dataFrame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.7359 0.7595 0.7617 0.7586 0.7563]\n",
      " [0.747  0.7595 0.7638 0.7605 0.7591]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_means = np.array(grid_neg.cv_results_['mean_test_score'])\n",
    "train_means = np.array(grid_neg.cv_results_[ 'mean_train_score' ])\n",
    "test_scores= test_means.reshape(len(penaltys),len(C))\n",
    "train_scores = train_means.reshape(len(penaltys),len(C))\n",
    "print(test_scores)\n",
    "\n",
    "x_axis = np.log10(C)\n",
    "for i, value in enumerate(penaltys):\n",
    "    plt.plot(np.log(C), test_scores[i,:], label= 'penalty:'   + str(value))  \n",
    "plt.legend()\n",
    "plt.xlabel( 'log(C)' )                                                                                                      \n",
    "plt.ylabel( 'accuracy' )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上图给出了L1正则和L2正则下、不同正则参数C对应的模型在测试集上的精度值。可以看出在测试集上当C=10时性能最好（L2正则）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 8. 根据6中得到的训练数据，训练RBF核SVM，并对超参数（C和gamma）进行超参数调优，并分析参数C和gamma对模型复杂度的影响，以及对训练误差和交叉验证得到的测试误差的影响。（20分）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 使用 GridSearchCV进行参数调优"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC\n",
    "C_s = np.logspace(-1, 3, 5)\n",
    "gamma_s = np.logspace(-1, 1, 3) \n",
    "params_gird = dict(gamma =gamma_s,C=C_s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise-deprecating',\n",
       "       estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
       "  kernel='rbf', max_iter=-1, probability=False, random_state=None,\n",
       "  shrinking=True, tol=0.001, verbose=False),\n",
       "       fit_params=None, iid='warn', n_jobs=None,\n",
       "       param_grid={'gamma': array([ 0.1,  1. , 10. ]), 'C': array([1.e-01, 1.e+00, 1.e+01, 1.e+02, 1.e+03])},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',\n",
       "       scoring='accuracy', verbose=0)"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "SVC2 = SVC(kernel='rbf')\n",
    "grid_=GridSearchCV(SVC2,params_gird,cv=5,scoring='accuracy')\n",
    "grid_.fit(X_train_part, y_train_part)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'C': 10.0, 'gamma': 1.0}\n",
      "0.7838\n"
     ]
    }
   ],
   "source": [
    "print(grid_.best_params_)\n",
    "print(grid_.best_score_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mean_test_score</th>\n",
       "      <th>std_test_score</th>\n",
       "      <th>mean_train_score</th>\n",
       "      <th>std_train_score</th>\n",
       "      <th>param_C</th>\n",
       "      <th>param_gamma</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7050</td>\n",
       "      <td>0.003322</td>\n",
       "      <td>0.706775</td>\n",
       "      <td>0.001135</td>\n",
       "      <td>0.1</td>\n",
       "      <td>0.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7294</td>\n",
       "      <td>0.004147</td>\n",
       "      <td>0.738375</td>\n",
       "      <td>0.001721</td>\n",
       "      <td>0.1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.3224</td>\n",
       "      <td>0.005348</td>\n",
       "      <td>0.328950</td>\n",
       "      <td>0.001580</td>\n",
       "      <td>0.1</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7460</td>\n",
       "      <td>0.002460</td>\n",
       "      <td>0.755350</td>\n",
       "      <td>0.001529</td>\n",
       "      <td>1</td>\n",
       "      <td>0.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7782</td>\n",
       "      <td>0.008650</td>\n",
       "      <td>0.843500</td>\n",
       "      <td>0.003017</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.5853</td>\n",
       "      <td>0.006518</td>\n",
       "      <td>0.983675</td>\n",
       "      <td>0.000936</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7723</td>\n",
       "      <td>0.009818</td>\n",
       "      <td>0.810500</td>\n",
       "      <td>0.001875</td>\n",
       "      <td>10</td>\n",
       "      <td>0.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7838</td>\n",
       "      <td>0.009512</td>\n",
       "      <td>0.964225</td>\n",
       "      <td>0.000596</td>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.6040</td>\n",
       "      <td>0.009174</td>\n",
       "      <td>0.999475</td>\n",
       "      <td>0.000122</td>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7787</td>\n",
       "      <td>0.007540</td>\n",
       "      <td>0.896775</td>\n",
       "      <td>0.001764</td>\n",
       "      <td>100</td>\n",
       "      <td>0.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.7687</td>\n",
       "      <td>0.003707</td>\n",
       "      <td>0.994975</td>\n",
       "      <td>0.000228</td>\n",
       "      <td>100</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.6028</td>\n",
       "      <td>0.009018</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>100</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0.7617</td>\n",
       "      <td>0.006370</td>\n",
       "      <td>0.963900</td>\n",
       "      <td>0.000331</td>\n",
       "      <td>1000</td>\n",
       "      <td>0.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>0.7580</td>\n",
       "      <td>0.002827</td>\n",
       "      <td>0.999550</td>\n",
       "      <td>0.000232</td>\n",
       "      <td>1000</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>0.6028</td>\n",
       "      <td>0.009018</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1000</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    mean_test_score  std_test_score  mean_train_score  std_train_score  \\\n",
       "0            0.7050        0.003322          0.706775         0.001135   \n",
       "1            0.7294        0.004147          0.738375         0.001721   \n",
       "2            0.3224        0.005348          0.328950         0.001580   \n",
       "3            0.7460        0.002460          0.755350         0.001529   \n",
       "4            0.7782        0.008650          0.843500         0.003017   \n",
       "5            0.5853        0.006518          0.983675         0.000936   \n",
       "6            0.7723        0.009818          0.810500         0.001875   \n",
       "7            0.7838        0.009512          0.964225         0.000596   \n",
       "8            0.6040        0.009174          0.999475         0.000122   \n",
       "9            0.7787        0.007540          0.896775         0.001764   \n",
       "10           0.7687        0.003707          0.994975         0.000228   \n",
       "11           0.6028        0.009018          1.000000         0.000000   \n",
       "12           0.7617        0.006370          0.963900         0.000331   \n",
       "13           0.7580        0.002827          0.999550         0.000232   \n",
       "14           0.6028        0.009018          1.000000         0.000000   \n",
       "\n",
       "   param_C param_gamma  \n",
       "0      0.1         0.1  \n",
       "1      0.1           1  \n",
       "2      0.1          10  \n",
       "3        1         0.1  \n",
       "4        1           1  \n",
       "5        1          10  \n",
       "6       10         0.1  \n",
       "7       10           1  \n",
       "8       10          10  \n",
       "9      100         0.1  \n",
       "10     100           1  \n",
       "11     100          10  \n",
       "12    1000         0.1  \n",
       "13    1000           1  \n",
       "14    1000          10  "
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_data=pd.DataFrame(grid_.cv_results_)\n",
    "grid_data=grid_data[['mean_test_score','std_test_score','mean_train_score','std_train_score','param_C','param_gamma']]\n",
    "grid_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0.705  0.7294 0.3224]\n",
      " [0.746  0.7782 0.5853]\n",
      " [0.7723 0.7838 0.604 ]\n",
      " [0.7787 0.7687 0.6028]\n",
      " [0.7617 0.758  0.6028]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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YiLrGQyb67awcscqTio9jin5hzldjhDDwscff8Dpp8/F4/Hg8Xg46aRTcLlcfPe7N/L888+xffs2vvzyC0pLx3S+59hjTwCgpGQURxwxA4Di4hIaGxt6XOfww6eTlpZGSckompoaAVi8+HI+/fRjli59lC1bviIYDES6gnoOitmz53DTTf/Kxo2a448/kQUL9h9fsLolrGVZSX92WcKCQilVCtwJzALagdVKqZVa63Xd1isGfgUk956KQ3vIz6Prn6YgbQTzD53ndDlCDJgTpnf91j/YF5qZpkk43PUAW19fz403fpdLL13MaaedgctldjkIezyezscul6vH7UZ39/S0zm9/+xt2797FmWeew8knn8rHH3+434E+2hFHzOCxx55m9epVvPHGqyxf/jz33PNAl3WKikZSU1PNyJHFBINBWlpayM1N7lmkEzmYPRdYobWu0Vo3A8uAhT2s9xBwWwLrGDTPbV5OdWsNS8ouIc3tc7ocIYaN2bOP4a23VhAIBGhubmL16lW0trYwc+Ys5s9fyNix41i9etWAT6fx8ccfsHjx5Zx++ly2b99GVdWemJ/xwAP38sorL3Huuedz443/xsaNer91jj32BF5++UUAVqx4jSOPnNElsJJRIqsbDZRHLZcDXW7lppS6AfgUeL8/H1BQkPirnIuK4pu874vKDby9azXzJp/O8ZOH51xO8e6L4S5V9sOePSZud+/fJWO9NtBOPvlk1q37gmuu+RY5OTkUFRVRWlrK+++v5sorLwWgrGwqFRW7O+vq+GkYBqZp4HabuFxm5Mpl+6fLZf+Opml0Ph/9+1155TX84he34vP5GDmymLKyqVRWljN+/Lge98OiRZfxs5/9lJdeeh7TNLn11ttxu03+8IffUVhYxEUXLeT667/DHXfcyuWXX0JWVja33XYnbrfJ22+/xTvvvMVNN/2sc3sul7nfZxwI0zQH5N+rEasZdTCUUjcBaVrrWyLL3wZmaa2vjyxPA+4HzgDGAG9qrSfEufkJwJbq6qb9mqMDqagom6qqxj7Xaw22cecHd+NxufnJ0TfidXn6fM9QE+++GO5SaT9UVGyjpGR8j68NdtfT2rVr2LFjO+eeez7BYJB//Mer+clPfsakSc6OAybjXE/Ruv8dmqbR8QV7IrA13u0kskWxEzgparkEiB7CvxgYBXwMeIHRSql3tNbR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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_means_rbf = np.array(grid_.cv_results_['mean_test_score'])\n",
    "train_means_rbf = np.array(grid_.cv_results_[ 'mean_train_score' ])\n",
    "test_scores_rbf= test_means_rbf.reshape(len(C_s),len(gamma_s))\n",
    "train_scores_rbf = train_means_rbf.reshape(len(C_s),len(gamma_s))\n",
    "print(test_scores_rbf)\n",
    "\n",
    "# x_axis = np.log10(C)\n",
    "for i, value in enumerate(gamma_s):\n",
    "    plt.plot(np.log(C_s), test_scores_rbf[:,i], label= 'gamma_s:'   + str(value))  \n",
    "plt.legend()\n",
    "plt.xlabel( 'log(C)' )                                                                                                      \n",
    "plt.ylabel( 'accuracy' )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上述结果会发现，gamma参数非常重要(当gamma=10时性能很差)；另外，经过上面的对比分析，非线性模型比线性模型得到的结果要好。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
